package exception03;

import java.io.IOException;
import java.util.zip.DataFormatException;

/**
 * 编译时异常在继承中的规则
 *  1.如果父类的方法声明一个异常,那么子类在重写该方法的时候,可能有以下几种情况
 *     a.子类重写父类方法不声明该异常
 *     b.子类重写父类方法声明该异常
 *     c.子类重写父类方法声明该异常的子类
 *  2.如果父类的方法声明了多个异常,那么子类在重写该方法的时候,可以声明父类异常的子集(包含空集)
 *    {a,b}
 *    {a} {b} {a,b} 空集
 *  3.如果父类的方法没有声明异常,那么子类重写该方法也不能声明异常
 */
public class Father {
    public void method01() throws Exception {

    }

    public void method02() throws Exception {

    }

    public void method03() throws Exception {

    }

    public void method04()throws DataFormatException,IOException {

    }

    public void method05()throws DataFormatException,IOException {

    }

    public void method06()throws DataFormatException,IOException {

    }

    public void method07(){

    }
}

class son extends Father {
    @Override
    public void method01()  {

    }

    @Override
    public void method02() throws Exception {

    }

    @Override
    public void method03() throws IOException {

    }

    @Override
    public void method04() throws DataFormatException {

    }

    @Override
    public void method05() throws DataFormatException, IOException {

    }

    @Override
    public void method06() {

    }

  /*  @Override
    public void method07() throws Exception{

    }*/
}
